import axios from 'axios';
import {Message} from 'element-ui'
//创建实例，封装公共配置
const service = axios.create({
    baseURL:'http://localhost:3000',//基本的URL地址
    timeout:5000 //请求的超时时间
});

service.interceptors.request.use((config)=>{
    let token = 'token';
    if(token){
        config.headers['Authorization']=`Bearer `+token;
    }
    return config;
},(error)=>{
    //可以在这里进行一些错误处理
    return Promise.reject(error);
});

service.interceptors.response.use((response)=>{
    //如果返回的状态码不是2XX,有些时候希望把不是2XX的状态码和响应当成错误来处理
   if(!/2\d{2}/.test(response.status)){
    Message.error('API Error'+response.data.message);
    throw new Error('API Error'+response.data.message);
   } 
   return response.data;
},(error)=>{
    //如果错误对象中有响应对象
    if(error.response){
        Message.error('Error'+error.response.status);//状态码
    }else if(error.request){
        Message.error('NetWord Error');//客户端请求没有发出，网络错误
    }else{
        Message.error('Error'+error.message);
    }
    return Promise.reject(error);
});

export default service;